﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using Acamps.Framework.BancoDados;
using Acamps.Framework.Util;
using Acamps.Web.NegocioWeb;

namespace Acamps.Web.Administrativo
{
    public partial class EnviarEvangelho : System.Web.UI.Page
    {
        AcessoWeb acessoWeb = new AcessoWeb();
        const string perfilEvangelho = "#Perfil.EquipeEvangelho";
        const string perfilEquipe = "#Perfil.Equipe";
        
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["login"] != null)
            {
                var logado = (LoginUser)Session["login"];
                if (logado.Perfil.Referencia.ToUpper() == perfilEvangelho.ToUpper() ||
                    logado.Perfil.Referencia.ToUpper() == perfilEquipe.ToUpper())
                {
                    btnSalvar.Visible = true;
                    btnLimpar.Visible = true;
                }
            }
            else
            {
                Response.Redirect("../Default.aspx");
            }
        }

        protected void btnSalvar_OnClick(object sender, EventArgs e)
        {
            string mensagemFinal = "";
            Evangelho evangelho;
            ComentarioEvangelho comentarioEvangelho;

            if (hidEvangelho.Value == "")
            {
                evangelho = new Evangelho();
                comentarioEvangelho = new ComentarioEvangelho();
                mensagemFinal = "Salvo";
            }
            else
            {
                evangelho = acessoWeb.EvangelhoNegocioWeb.RecuperarEvangelho(Guid.Parse(hidEvangelho.Value));
                comentarioEvangelho = evangelho.ComentarioEvangelhoes.FirstOrDefault();
                mensagemFinal = "Alterado";
            }

            CarregarObjetos(evangelho, comentarioEvangelho);
            

            try
            {
                if (hidEvangelho.Value == "")
                {
                    evangelho = acessoWeb.EvangelhoNegocioWeb.Salvar(evangelho, comentarioEvangelho);
                }
                else
                {
                    evangelho = acessoWeb.EvangelhoNegocioWeb.Editar(evangelho, comentarioEvangelho);
                }
                MensagemWeb.Show(new Mensagem("Registro " + mensagemFinal + " com Sucesso.", false, null), this.Master);
               
            }
            catch (Exception ex)
            {
                MensagemWeb.Show(new Mensagem("O registro não pôde ser " + mensagemFinal, true, ex), this.Master);
            }
            Limpar();
        }

        private void Limpar()
        {
            txtData.Text = "";
            txtTitulo.Text = "";
            txtLeitura.Text = "";
            txtEvangelho.Text = "";
            txtTituloComentario.Text = "";
            txtLeituraComentario.Text = "";
            txtComentarioEvangelho.Text = "";
        }

        private void CarregarObjetos(Evangelho evangelho, ComentarioEvangelho comentarioEvangelho)
        {
            evangelho.Data = Convert.ToDateTime(txtData.Text);

            evangelho.Titulo = txtTitulo.Text;
            evangelho.Evangelho1 = txtEvangelho.Text;
            evangelho.Leitura = txtLeitura.Text;

            comentarioEvangelho.TituloComentario = txtTituloComentario.Text;
            comentarioEvangelho.LeituraComentario = txtLeituraComentario.Text;
            comentarioEvangelho.Comentario = txtComentarioEvangelho.Text;
        }

        protected void btnLimpar_OnClick(object sender, EventArgs e)
        {
            Limpar();
        }

        [WebMethod]
        public static string ConsultaEvangelho(string data)
        {
            string retorno = "";
            AcessoWeb acessoWeb = new AcessoWeb();

            var evangelho = acessoWeb.EvangelhoNegocioWeb.RecuperarEvangelhoDia(Convert.ToDateTime(data));

            if (evangelho != null)
            {
                retorno = evangelho.Id + "#" + evangelho.Titulo + "#" + evangelho.Leitura + "#" + evangelho.Evangelho1 +
                          "#" + evangelho.ComentarioEvangelhoes.FirstOrDefault().TituloComentario + "#" +
                          evangelho.ComentarioEvangelhoes.FirstOrDefault().LeituraComentario + "#" +
                          evangelho.ComentarioEvangelhoes.FirstOrDefault().Comentario;
            }

            return retorno;
        }
    }
}